package de.hdu.tennis.model;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;


/**
 * model class Rechnung
 * @author Lilli Kardapolzew, Katharina Weber, Carolina Hirtreiter
 */

@Entity 
@Table(name = "tbl_rechnung")

public class Rechnung {

			
		
		@Id
		@GeneratedValue
		@Column(name="pk_rechnung")
		private Integer id; 
		@Temporal(javax.persistence.TemporalType.TIMESTAMP)
		private Date startzeit; 
		@Temporal(javax.persistence.TemporalType.TIMESTAMP)
		private Date endzeit; 
		private Double rg; 
		
			/**
		    * <b>connection to the table TennisplatzController</b>
		    * <ul>
		    * <li>Tennisplazt 1:n Rechnung</li>
		    * <li>one TennisplatzController has no, one ore more Rechnungen</li>
		    * <li>one Rechnung has one TennisplatzController</li>
		    * <li>pk_tennisplatz is foreign key and referential integrity is on</li>
		    * </ul>
		    */  
		
		@ManyToOne
		@JoinColumn(name="pk_tennisplatz", nullable = false)
		private Tennisplatz tennisplatz; 	
		
	    	/**
		    * <b>connection to the table ReservierungDao</b>
		    * <ul>
		    * <li>ReservierungDao 1:n Rechnung</li>
		    * <li>one ReservierungDao has no, one ore more Rechnungen</li>
		    * <li>one Rechnung has one ReservierungDao</li>
		    * <li>pk_reservierung is foreign key and referential integrity is on</li>
		    * </ul>
		    */  
		
		@ManyToOne
		@JoinColumn(name="pk_reservierung", nullable = false)
		private Reservierung reservierung; 
		
    		/**
    		* <b>connection to the table Mitglied</b>
    		* <ul>
    		* <li>Mitglied 1:n Rechnung</li>
    		* <li>one Mitglied has no, one ore more Rechnungen</li>
    		* <li>one Mitglied has one ReservierungDao</li>
    		* <li>pk_mitglied is foreign key and referential integrity is on</li>
    		* </ul>
    		*/ 
		
		@ManyToOne
		@JoinColumn(name="pk_mitglied", nullable = false) 
		private Mitglied mitglied;

		
		// Getter / Setter methods 
			public Integer getId() {
				return id;
			}

			public void setId(Integer id) {
				this.id = id;
			}

			public Date getStartzeit() {
				return startzeit;
			}

			public void setStartzeit(Date startzeit) {
				this.startzeit = startzeit;
			}

			public Date getEndzeit() {
				return endzeit;
			}

			public void setEndzeit(Date endzeit) {
				this.endzeit = endzeit;
			}

			public Double getRg() {
				return rg;
			}

			public void setRg(Double rg) {
				this.rg = rg;
			}

			public Tennisplatz getTennisplatz() {
				return tennisplatz;
			}

			public void setTennisplatz(Tennisplatz tennisplatz) {
				this.tennisplatz = tennisplatz;
			}

			public Reservierung getReservierung() {
				return reservierung;
			}

			public void setReservierung(Reservierung reservierung) {
				this.reservierung = reservierung;
			}

			public Mitglied getMitglied() {
				return mitglied;
			}

			public void setMitglied(Mitglied mitglied) {
				this.mitglied = mitglied;
			} 
		
	}

